Buoy Design, Automation and Optimization: Documentation

This is a BETA website for Windward Mark Engineering.

The site is currently being developed and should be considered experimental. It should only be used for testing and development.

Introduction
Below is a simple, hypothetical scenario that uses the framework presented in the Engineering Automation and Optimization page. Suppose there is a client who needed a buoy designed in such a way that it could support a given cargo. The technical expert needs to make sure the buoy can not only float, but also ensure the cargo onboard does not get submerged if the cargo gets placed at the deck edge.

Optimize Buoy Design Applet

Simple Buoy Design w/ Cargo: Physics-Based Problem Example
Problem Definition
The Cargo weight and size are assumed to be part of the design specification. The client will establish this as part of their request to me as their engineer. It will be my job to use my experience to anticipate load cases (which usually involves discussions with the client as well) and I will define all aspects of the buoy size and construction to provide my client with a design that can float while supporting their desired cargo.

Designing a feasible buoy is the most important goal, but if I've done my job well, we should use our technical know-how to consume the fewest resources to create it. Again, keeping this example simple, we will focus on designing a buoy that uses the least amount of construction material to build. So, let's look at this simple problem as a Physics-based AI engineering problem, and use the flow chart to automate the process while creating an optimal design. Let's follow the flow chart for Physics-based AI below:


Logic Flowchart: Physics-Based Problem Solving

For this example, we are going to bypass the data-analysis process often used in data-based AI. Instead, we will use a more reliable means of optimal design answers. We are going to use physics directly. This is a simple case, where we have the necessary physical definitions and equations used to make those predictions needed to reliably define a feasible, and then, optimal design -- all automatically. So, let's see how it might work to solve this problem directly with a physics-based approach.

The most important physics equation for this problem is Archimedes' Principle. Stated simply, the weight of the displaced object is equal to the volume of the water being displaced. So, this requires calculation of two quantities: 1) the volume of water being displaced, and 2) the weight of the buoy itself.

For now, let's leave the problem this simple. Let's not get bogged down (yet) on other concerns and focus on one objective: use the least amount of material to construct the buoy.
Goal Definition
When referring to literature on formal design optimization, it is common to frame the problem in to two statements. The first statement is the Goal (or objective), and the second statement is a list of requirements and limitations (aka constraints). So, for the simple buoy design problem, the problem definition statements are as followed:
OBJECTIVE:
Design a buoy that uses the least amount of construction material (by mass).

SUCH THAT:
Archimedean Equilibrium is satisfied (Equality Constraints)
1: Weight of (Buoy_selfweight + Cargo) = Weight of Displaced Water
2: Horizontal location of CoB = Horizontal location of CoG
Deck Edge is not Submerged (Inequality Constraint)
3: The Cargo must not get wet when the cargo is located at the outboard edge
Design Variables
All problems are defined by two categories of information: factors that we can change, factors that we do not change (or can not change). Let's look at the variables we do change for designing our buoy.
Independent Variables
The changing variables for this problem belong in two categories of information. The first group is the Independent variables that define the size and shape of the buoy itself. A casual observer would ordinarily describe the buoy by these measurements. In this case, the buoy is a simple cylinder which is defined by a diameter and a height. The horizontal cross-section is assumed to be circular.



Principal Dimensions: Buoy Geometry Definition

The buoy size dimensions will be used to calculate the weight of structure needed to construct the buoy (see below for details); and they will also be used to calculate the volume of the water being displaced.

Another group of Independent variables, are the dimensions that define the orientation with respect to the displaced water. For this example, these are the vertical position, and rotation, of the buoy. These inputs are used by the model to calculate reaction forces and moments. Since the entire set of loads is governed by Archimedes' Principle, we need variables that establish how much water is being displaced, and, where the centers of the displaced volumes are located. The properly designed buoy will achieve Archimedean balance, along with Centers of Gravity & Buoyancy that are aligned. These variables allow the solver to search for these states of balance.


Principal Dimensions: Buoy Geometry Definition


Center of Buoyancy: Location wrt Rotation

Changing Variables: Horizontal Position of Vertical Loads

This brings up a very important, yet non-intuitive, observation. The obvious Goal of the design problem is to make the lightest hull possible. However, a strict execution of an optimization program with respect to the hull dimensions alone would immediately chase a solution of Diameter = 0 & Height = 0. Yes, this is absurd.

But, in the world of Optimization, it is important to use the knowledge you have to frame the problem properly. A stupid computer will tell you the lightest hull is no hull at all. Our engineering intuition knows there's more to the problem. So, refer to the 'such that' portion of the problem definition above. There are Constraints on the problem; specifically, the buoy hull must displace enough water to support the cargo.

It seems trivial, but it is actually very important to remember. It's often the Constraints that you are designing too, not necessarily the Objective Function. But it's also the very essence of Optimization, as described by LaGrange with his novel concept of using gradient matching embedded into a single Objective Function (aka the 'LaGrangian'). Very literally, there are restrictions on how small the Objective Function can realistically be, due to the dimensional and positional Constraints. The entirety of these Objective Function and Constraints becomes the Optimization Function.

In this example, the cylinder's vertical position must beget the matching displacement with respect to the weight of the buoy itself. Similarly, there is a rotational position that must match the vertical load positions. See the diagram above. As the buoy rotates, the Center of Buoyancy (the 3D centroid of the wetted volume) shifts laterally and eventually aligns with the Center of Gravity of the Cylindrical Hull and the Cargo on deck. Therefore, it's important to recognize that the vertical position and rotation position are also Independent variables that vary during the optimization process. Part of the Objective Function is achieving Archimedean balance.

Non-Optimized Design Variables (Constant wrt Objective)
When defining the problem and its constraints, it is also important to determine model variables which do not get optimized. These 'variables' are inputs used during the design modeling process, but they do not change during the search for the optimal design. These non-varying inputs may be defined initially by the user, and may be essential to defining the behavior of the numerical models that serve as the Objective Function, but, they will not change during the search for the best design.

These non-changing factors fall into several categories. The list below are just a few types considered for this example, but the list is certainly not exhaustive:
  • Given Properties
    • Material Weight Density
    • Material Strength Properties
  • Beyond Scope
    • Detailed Structural Analysis/Design
    • Inertial & Dynamic Loads
    • Drag and Friction forces
    • High-order Fluid Effects
    • Constructability / Installability
  • Beyond Your Control
    • Material Pricing
    • Labor Rates
  • Irrelevant / Non-Impactful
    • Water Temperature
    • Salinity
There needs to be significant time spent considering and documenting these assumptions. This is one of the huge benefits to going through this process, it forces you to consider as many factors as possible to the design that may influence the resulting design. Some factors are not important, others are; and systematically categorizing these inputs is beneficial. There is a tradeoff between the amount of detail considered, and the resulting quality of the answer. The design process will likely undergo multiple phases and more of the problem is understood, and the relative importance of the knowns and unknowns is incorporated into your final design models.

For this simplified design example, the two most important non-changing variables used are:

Construction Material
There are several important design-related factors that are embedded in the selection of the construction material.

Factors Include:
  • Weight Density
  • Strength Properties
  • Constructability
  • Availability
The material's Weight density is the most influential non-changing variables for this example as the weight of the buoy hull is the ideal target of the overall Objective Function. It also has a sensitivity that is Order Cubic/Linear; meaning the principal dimensions of the buoy are Order Linear, but the resulting volume of material change will be Order Cubic.

Water Density
The water density influences the amount of buoyancy provided by the displaced volume of the buoy hull. In actuality, it is a minor issue, and rarely makes a critical difference in performance. The difference between saltwater and fresh water is ~2.5%, but it is something to consider when a hull form is being Optimized to the limit, where design margins may be completely consumed for the sake of Optimum performance.
Another non-changing variable is the Cargo itself; but, it is actually part of the problem definition itself. For this example, it is stipulated that the Cargo properties do not change once it is loaded onboard the deck of the hull.

That said, there are several assumptions made by the example applet when defining the cargo. In actual practice, these sorts of details should be specified, but for simplicity in creating an example applet the following is assumed to be defined by the 'customer':
  • The Shape and Size of the cargo object is a perfect cube; having equal length, height, and width
  • The Weight of the Cargo is specified by the Applet user-form, but the volume of the cargo object is reverse-calculated, based on a specific gravity of 0.25 (25% the density of water). This calculated volume is cube-rooted to obtain the footprint of the cargo
  • The Position of the Cargo will be at the outer edge of the hull; ½(Hull Diam - Footprint). The cargo will not get wet during maximum buoy heel.
  • If the buoy hull diameter is less than ½ the Cargo footprint, the cargo will be centered on the Buoy CenerLine.
Constraints
Constraints are the limitations on a problem that often make the problem difficult to solve. In fact, the constraints are the most important part of the Objective Function. It is the combination of Constraints that usually force problem-solvers to seek the 'creative' approach, and often work against the ideal solution. (it's also where Engineer's earn their money.)

For this example, it's even possible to argue the constraint IS the problem. If the buoy didn't sink when too much cargo was sitting on the deck, then an infinitesimally small buoy design would suffice. Physics Archimedes' principle makes life much more complicated.
Archimedean Constraints (Equality Constraints)
As stated above, without the constraints, the ideal (and yet impossible) solution to the minimal hull size would be no hull at all. The only part of the problem definition that requires there to be a hull in existence is the Archimedean balance. A hull must be of a sufficient size to displace enough water to float the specified cargo.

And if any hull is required, it would necessarily have its own self weight to then consider in Archimedean balance. Fortunately, even though the material used to make the hull is far more dense than the water it floats in, there is a void space formed within the hull (interior of the hull plating). Fortunately, this void is generated at a faster rate than the hull principal dimensions, so there is a limit to how much hull is required to have sufficient buoyancy for the cargo AND the hull itself. This excess rate of generating interior void space is the answer to the archetypal question: 'why do boats float?'.

In this example problem, we will vary the Hull Diameter and Hull Height until we strike a balance between the hull's weight and the hull's displaced volume. As discussed above, the LaGrangian will also include the hull's position in the set of changing variables to seek a balance of the Displaced Volume * Water Density to be equal to the weight of the Hull & Cargo.

Note: It's important to understand this balance is not guaranteed. If the hull's volume is not great enough to displace enough water to equal the weight of itself and its cargo, then the hull will sink.

The LaGrangian form of the Optimization Function will also include the hull's rotation in the set of changing variables to gauge alignment of the generated vertical loads. The Cargo's placement at the deck edge will necessarily shift the horizontal center of gravity outboard of the hull's centerline. The rotation will then change the shape of the submerged cylinder, and that changing shape will have a Center of Buoyancy that will also shift outboard from the hull centerline. If the Center of Buoyancy shifts outboard enough to align with the location of the Center of Gravity, then the hull rotation will also achieve (CoB::CoG) Archimedean equilibrium.

Like the observation above with respect to displacement, it's important to understand this shift in buoyancy center is not guaranteed to ever align with the shift in mass center. The hull's maximum shift in buoyancy is (approximately) achieved when the deck corner is submerged and outboard at its maximum with respect to the origin. If the Center of Buoyancy does not shift outboard enough to encounter the shift in the Center of Gravity, then the buoy will be insufficiently stable, and will roll over.

From a theoretical standpoint, these constraints are both equality constraints. Their necessary implementation takes this simple optimization scenario from the relatively benign realm of Unconstrained Optimization to the much more complex world of Constrained Optimization. Considering the technical requirements explained above, and the significant chance that a solution isn't viable, or a non-feasible solution will be encountered during the search for the optimum, the problem is much more complex than might be encountered with a simple Algebraic optimization problem.

Operational Constraints (Inequality Constraints)
To add to the complexity of the practical example, we will add another requirement for study. Let's also stipulate the need to keep the cargo dry under maximum rotation. There is reserve buoyancy in further rotation (as the deck slips below the waterline, the Center of Buoyancy can continue to shift outboard), however, this characteristic is undesirable from a pragmatic standpoint. What good is placing your cargo on the buoy, if there isn't also the expectation that the cargo will stay dry.


Dry Cargo Constraint: Geometry of Maximum Allowable Hull Rotation

From a theoretical standpoint, this constraint is an inequality constraint. No specific condition is required, but rather a limit on a maximum condition is placed. The optimal solution to the buoy design does not force a rotation that is submerged; it merely is a possibility. As such, the "dry cargo" constraint is an inequality constraint. This constraint may, or may not, be active in the final solution.

This implementation of a non-equality -- but possibly needed -- constraint, takes the already challenging class of Equality-Constrained optimization, to the far more complicated class of Inequality-Constrained optimization. This requirement compounds the challenges that increase the likelihood of a non-feasible solution will be encountered during the search for the optimum. This addition to the real-example problem is now far, far more complex than might be encountered with a simple algebraic optimization problem. Again, this is why this problem is such a good example to explore, for all its technical challenges not ordinarily encountered in a pedestrian 'numerical methods' text.

See the explanation of some of the technical details here.
Feasibility Limitations (Implied Constraints)
Not all constraints are explicitly defined by the model maker. Many constraints are implied (although often explicitly defined to be consistent). Other implied constraints are captured when the search domain is defined (see the next section).

For this particular example problem, the following limitations are implied. However, most of these considerations are contained within the models, and will return an 'infeasible error' flag if these conditions are encountered during the search. The decision to include these constraints explicitly is a tradeoff: each explicit constraint adds complexity to the LaGrangian Objective Function, but also automatically guides the search away from infeasible answers. But it can also create domain regions that 'trap' a solution search within a feasible, but unrealistic (or ultimately still infeasible) regime.
1a: Diameter > 0, Height > 0 (not possible to have negative dimensions)
1b: 100% > % Submergence > 0% (if < 0%, not displacing water; if > 100%, the buoy sinks)
1c: Rotation > 0 (Cargo weight at the deck edge should not beget negative rotations)
2: Height > (Top + Bottom) Plate Thickness & Stiffeners
3: Diameter > 2 * Bottom Plate Thickness & Stiffeners
4: Diameter > Nominal Cargo Footprint (Cargo footprint is fixed & defined by user)
Feasible Domain Definition
The algorithm used to perform the search must be given the guidance of where to search, and where not to search. Defining these boundaries is often the most critical part of assessing the problem. It is important to properly fence the search. A search that is too broad may explore infeasible, impractical, or technically impossible solutions. Ironically, this same freedom is one of the most important features of Physics-based AI. There is no pre-conceived answer, or notion of "silly" answers. The computer does have biases based on experience, or aesthetics, or superficial desires. If the answer is feasible and optimal, it should be considered for design. At the very least, the end user should learn from the result (see the Weight model lesson below) and identify what did, and did not make the answer viable. The feasible, yet unexpected, result is potentially a disruptive answer. Do not dismiss them lightly.

For this example, the following approach was used to initialize a feasible domain that was sufficiently wide to capture unexpected results, while excluding design combinations that would simply not be possible or desired for practical reasons.

Domain Bounds Logic for Hull Diameter & Height
  • Displacement Ratio (DR) = SG Construction Material / SG Water
    • ~7 Steel, ~3 Aluminum
    • Cargo << dense than Construction Material; conservative to not consider Cargo impact
  • Nominal Dimension (D) → Volume ≈ DHeight * DDiam2/4 * 3.14 ≈ D3
  • Lower Bound wrt min possible displacement
    • Min possible Displacement ≈ Cargo mass * DR
    • min Height :: max Diam0.5
    • max Diam :: min Height2
  • Max possible displacement
    • Repeat similar logic check
    • Keep max possible minimum & minimum possible maximum
Domain Bounds Logic for Max Displacement & Rotation
  • Expect optimal Displacement of ~50%-90% submergence
    • < 75% implies a lot of Hull required for self-weight
    • > 90% implies Hull is not providing much Rotational Stiffness
    • Expect optimal ~75-85%; Cargo SG = 25%, Cargo/Hull ~0.25/(1+.25)
  • Expect Max Rotation constraint will be engaged (if displacement prediction is reasonable)
    • Will consume as much restoring moment available
    • If buoyancy is ~50% (lower bound) then max Rotation is ~45deg
    • 45deg is too high for operations, cargo will likely slide (insufficient friction)
    • Test max @ 22.5 deg; monitor search wrt Rotation
    • (if 22.5deg challenged) Add strict Constraint based on Friction/Operation limits
Modeling and Execution
Models
The two portions of the Archimedean balance being sought require two very important calculations.

The models need to be tested over the domain of anticipated possible solutions (see above). For cases where the model is not feasible (for instance when the calculated weight would exceed the available buoyancy) then the model needs to return an error flag, preferably with some guidance on how to handle the error.
Volume Geometry Model
The Volume, and the corresponding Center of Buoyancy, is calculated using the model found in the applet here.

The applet looks for three geometric conditions, each based on how the waterline slices the cylindrical shape.
  1. If the waterline slices the circular cross-section, standard references of elementary geometry can be used.
  2. If a corner is sliced, then lesser-known, but still well documented, geometric properties of a cylindrical frustrum are used. Depending on the volume being examined (the top portion or the bottom portion) strategic combinations of Whole Cylinder - Partial Volume may be used.
  3. If the cylinder is on its side (which is never the case for this optimization problem example), then prisms consisting of ends with circular sectors are used.


Volume Geometry Model: Output Example
Buoy Hull Weight Model (Very Simple)
The weight model has not been converted into a specific applet. The initial weight estimate for the buoy hull consisted of simple shell plates, whose thickness were defined as a proportion of the buoy's height. Typically, the actual shell plate thickness of floating structures is driven by the hydrostatic pressure (plus some dynamic loading) and the plate is thicker at the bottom, with an trapezoidally-increasing thickness between the top plate and bottom plate. Additionally, the interior void of the buoy hull will be filled with 5% internal structure. The internal structure will be located at the centerline, with the vertical center applied at the same vertical location as the side-shell.


Weight Model: Simplified Assumption

Lesson Learned: When the model was run with these assumptions, the solution converged immediately on a flat disk, with enough thickness and diameter to generate the required buoyancy. Therefore, the model was updated to properly reflect dependency on the structure as actually needed for strength. (see the discussion below on Soft Assessment)

The simple model did not account for the calculated hydrostatic stress from the water nor the bending and shear stress from the uneven forces induced by the cargo forces above, and the buoyancy pressure beneath the plate. These stresses are relevant, and cannot be ignored, even in a simplified modeling approach.

Buoy Hull Weight Model (More Detail)
A new, more rigorous, structural model was developed. This model needed to reflect a more accurate, and realistic estimate of the need for structure. Even in this very basic example model, the simple shell plate estimate proved too simple. The model needed to consider the need for more structural modeling accuracy, even if the approach was still simple, compared to a full structural design.

The revised model made the following assumptions:
  • Top Plate is Pin-Pin supported
    • The cargo is a point load
    • Plate is checked for Bending and Shear, governing applies
    • Plate section is wrt Buoy Diameter, solved for Thickness
  • Bottom Plate is Pin-Pin supported
    • The hydrostatic load is uniform, wrt Height + 1m (overtopping margin)
    • Plate is checked for Bending and Shear, governing applies
    • Plate section is wrt Buoy Diameter, solved for Thickness
  • Side Shell
    • Thickness is trapezoidal wrt top and bottom shell (same as simple model)
    • No Structural benefits from stiffness of side-shell or connections to it (moments are not transferred)

Weight Model: Simplified Assumption

A lower-bound interior void gap was also calculated by assuming typical stiffeners based on the following dimensional assumptions:
  • Actual PL thickness is ½ calculated PL thickness
  • There are bulb-flats with a depth defined to be 2 x the calculated PL thickness
  • This is only a geometric limit, weight is based on calculated PL
  • The definition of the interior void of the buoy hull is updated. Now, the void is only space between the plate framing structure, to avoid rewarding 'empty' hull forms.

Weight Model: Simplified Framing


Required Internal Volume: Non-Zero Height and Diameter

By making the structural weight dependent on bending and shear stresses (with those stress calculations being dependent on both Hull Diameter and Hull Height), the optimizer does not chase solutions that are unrealistically thin. This ends up being an important lesson: the parametric model needs to contain enough detail that the correct Objective is being sought. Without requiring the structural model (and therefore the weight model) to be dependent on the Hull Diameter and Height, the optimizer assumed a solution that wasn't practical.

Combined Objective Function Model
Now the individual models have been generated, validated, and return either answers or guidance on how to handle errors. The models now must be combined such that they return a single design option for the inputs.

The applet for the combined Weight and Forced Model can be found here. The model in this Applet takes in the Client-requested input (Cargo mass), as well as the four Independent Variables: Buoy Diameter, Buoy Height, Buoy Vertical Position, and Buoy Rotation.

The model also takes in several non-changing inputs, to offer the user a chance to try other design scenarios. These options include Construction Material type and Displacement Water type.

The overall idea is that a single 'snapshot' is generated for a given set of inputs, and the returned answer contains all the feedback needed to evaluate the design.


Combined Model: Output Example
Automated & Optimized Execution
Referring to the picture below, the model returns all the necessary information for the AI engine to process the design. The engine will generate numerical derivative matrices (Hessian and Jacobian), utilize Newton's Method on the full LaGrangian Objective Function, and return an anticipated directional step vector. The input design parameters will be incremented by the step vector, and the process will be repeated for the next design scenario. Per Newton's Method, the process will be repeated until the step size is small, and essentially no change is observed from one step to the next. When these values are ~0, then the Karush-Kuhn-Tucker condition is satisfied, and the Design process is complete.


Execution: Final Answer Example

Post-Execution Assessments
Referring to the outline at the top of the page, the major steps of the design process have been completed:
  • The design problem has been composed, which also includes:
    • Defining the overall desired Objective to achieve
    • Defining the Constraints
    • Selecting the Changing, and Non-Changing qualities of the problem
    • Determining the upper and lower limits of the changing variables
    • Combining all the parts of the problem into a single Problem Definition
  • Generating a parametric numeric model of the Objective Function
    • Generating and Validating a model of the Objective
    • Generating and Validating model(s) of the Constraining Process(es)
    • Combining all the models into a single Cost Function (LaGrangian)
Hopefully, the engine was able to generate a design. As this buoy design example problem demonstrates, this can sometimes be a tricky process. And even if the engine finds a solution, the results need to be evaluated for softer considerations.

Hard Assessment
The hard assessment process is the process of scrutinizing the automation steps. When the evaluation steps do not converge on an answer, the steps should be traced. These step progressions should offer insight into the design process itself.

Observations from the Solution Steps Animation
The animation below shows the steps of each calculation, for each generation of the Interior Point convergence. It is a typical result for this example problem, and it reveals some fundamental challenges with this problem. The problem seems very simple, but examining the solution process provides an interesting education on how solvers work on problems. Moreover, the over-capping observation is that simple-looking problems often have deeper qualities that make them complex.

Generation 1:
The first generation clearly chases a solution which is over-rotated. The hull size shrinks rapidly, and seems to reduce at a rate that is faster than both the Archimedean and Rotation equality conditions respond to (numerically).

Also, the initial generation of the Interior Point cost function does not have the Dry Deck inequality constraint activated. The first generation finds a convergence without the inequality constraint, but engages the constraint upon commencing the next Generation.

Generation 2:
The next generation resets between the midpoint of the original Initial input vector and the guess where the Inequality barrier is crossed. It is easy to see how the Inequality condition is engaged for Generation 2 as the rotation steps slow as the hull deck approached the submersion point.

Careful observation also shows that not only are the Hull Diameter & Height reducing (directly reducing the hull's weight), but the residual Net Moment and Net Vertical force are reduced nearly to zero.

Generation 3:
By the third generation, the algorithm has identified the need for engaging the Dry Deck inequality condition, and this generation the initial steps are close to the eventual answer. The final ~10 steps are near the KKT = 0, and an overall best solution is completed.


Execution: Typical Animation of Automated Buoy Design Steps

Refer to the 2-dimensional slice of the 4-dimensional Solution Domain below. The solution is for the Cargo mass of 1111kg. The slice is taken with respect to Height vs. Diam at the solution {Height: 1.85m, Diam: 3.57m, Rotation: 11.02deg, 77.3%sub}


2D Slice at the Solution: Hull Diameter vs. Hull Height with Constraints
Information Legend:
  • bold purple-dashed line is the boundary of the Archimedean (vertical) Balance equality constraint
  • bold red-dashed line is the boundary of the Rotational Balance equality constraint
  • green fill area is the Maximum Rotation (Dry Cargo) Inequality constraint
  • light grey dashed lines are the Objective Function level curves
  • long red and purple streaks are the projection of the LaGrange gradients of their respective constraints
  • bold light grey X is the initial guess of the overall search
  • bold dark grey X is the initial guess of the last Interior Point generation
  • black plusses (not very visible) are the steps for the last generation of the Interior Point Search
  • Bold Star is the solution

Observations Summary:
  • The overall Objective of finding the lightest hull is reflected in the level curves. The hull does indeed get heavier as the Diameter and Height increase (towards the upper-right corner)
  • The Vertical Balance equality condition is approximately parallel to a narrow range of Diam vs. Height. Considering the Cargo weight is fixed, and there is a relatively constant amount of Hull construction material needed to generate the necessary buoyancy for the Cargo and Self-weight, this is expected.
  • The Rotation Balance equality condition is broken into two sections. The small section to the upper-left suggests Rotational Equilibrium can be achieved for buoy designs that are skinny and tall. However, this is likely an artifact of the possible solution as the hull rolls over 90 deg on its side. This would be feasible, but would grossly violate the Dry Deck inequality condition.
  • The Dry Deck inequality condition is reflected as the green shaded portion along the bottom of the graph. It also make sense that relatively short (wrt width) hull designs will violate this condition as they would not have the reserve rotational buoyancy needed to prevent the hull from over-rotation.
  • The final solution is at the intersection of all the Constraints. The small offset from the Dry Deck constraint is an artifact of the barrier function used within the LaGrangian Objective function. As the barrier factor gets reduced in subsequent generations of the Interior Point iterations, the buoy will become slightly wider and shorter, and eventually reduce the barrier offset to ~0.


Upon further study of the 2D slice diagram above, there are some deep complexities hidden within.

Cost Function Concerns
  • Rotation not strictly-convex
    • could even be anti-convex
    • can be source of non-convergence (if ArgMin ⇒ max, while rest of solution ⇒ min)
    • Interior Point slack variable may not shift towards barrier
  • LaGrange Multiplier Scaling
    • Best: Olinear / Ocubic
    • Worst: O% / Ocubic
  • Initial selection of LaGrange Function Variables
    • LaGrange Gradients have slopes that not very colinear, or sometimes the wrong direction
    • Slack Variables have difficult to test initial conditions (away from active constraint)
  • Execute the Automation & Optimization engine
Cost Function: Literally measure of Volume of Construction Material
  • Cost as Function of Buoy Diameter and Height
    • Direct variables wrt measured material volume
    • Diam & Height are Orderlinear; material volume is Ordercubic
  • Cost as Function of Percent Submergence and Rotation
    • Indirect variables; feed into structural strength model → material weight
    • Needed to satisfy Archimedean constraints (see above)
    • % Submergence is O% (0 to 100%)
    • Rotation is Osinusoidal
    • Assume locally linear or quasi-quadratic (depends on phase)
Due to the complexities of this problem, non-convergence is definitely a real possibility for some (many) initial conditions. If the model is not converging, it is recommended to use the pre-screen option to generate the Initial Guess prior to executing the optimization process, found in this applet process.
Other Non-Convergence Issues
Although this example does not have any of the following issues, these issues are common and should be considered should you ever have convergence problems on your particular problem. Should you encounter convergence problems, examine the step-by-step process (for example the animation provided above) to see if any of the following are happening:
  • Solution is pressing against a Constraint?
    • Consider relaxing the offending constraint
    • The constraint may indeed require a meaningful design change, such as lighter construction material, risk mitigations, alternative placement or connections, etc.
  • Solution is pressing against a Variable Boundary?
    • Consider expanding the domain of the offending variable
    • If the variable quantity is not feasible, then again, the design approach may require a fundamental edit to the assumptions used
  • Over/Under Constrained?
    • The problem may be over-constrained if the solution shows one constraint being activated for one initial condition vector, and another constraint being activated for a different initial condition vector. Regardless, there does not seem to be solutions that activate all constraints.
    • Symptoms of under constraint include solutions that are nominally feasible, but converge on different ArgMins for different initial condition vectors.
  • Numerical Modeling Errors?
    • Trace the code that generates the logic for the models.
    • Trap, or return error flags, for scenarios that are not physically possible
    • Make sure the code itself doesn't have errors; validate with other models if possible
  • Constraints Inconsistent? (This is the most difficult scenario to detect.)
    • Examine the 2D Slice plot for different variable combinations. Sometimes you'll notice constraints that do not intersect, or are parallel to each other. This could mean one constraint activates pre-emptively over another.
    • One constraint may (unknowingly) require another constraint to be activated before it is engaged. Check the logic of the Objective Function and/or Constraints to see if this may be happening.
Soft Assessment
Checklist
  • Align with Goal(s)?
  • Reveal unforeseen problem(s)?
    • beyond hard assessment
  • Consistent w/ your intuition?
  • Confirm limitations/difficulties?
  • Can (or should) the current answer be improved?

Reminder of Weight Model Lesson... I found out the hard way on this very example, that my assumed structural model was insufficient, and the simplifications I made were giving misleading answers.
Learn & Adapt
Details of Soft assessment...

Reminder of Weight Model Lesson... I found out the hard way on this very example, that my assumed structural model was insufficient, and the simplifications I made were giving misleading answers.
  • Need more exact solution of Cost/Constraints?
    • more details in model
  • Are physical constraints consistent/reasonable?
    • beyond hard assessment
  • Is there a practical limit being ignored?
  • Should more/less input variables be considered?
  • Search for better ‘non-varying’ options
Success
After scrutinizing with Hard and Soft assessments
If the soft assessment fails, don't be afraid to go back to the beginning of the process. requires experience and human intuition.
Lessons
Model of Geometry Model of Structure Essence of Stability Practical vs. Ideal Solution
Improvements to Next Design Iteration
Influence of Inertia & Friction Influence of Mooring More Detailed Structure